package br.com.toscano.gobra.business;

import br.com.toscano.gobra.domain.Funcionalidade;
import br.com.toscano.gobra.persistence.FuncionalidadeDAO;
import br.gov.frameworkdemoiselle.lifecycle.Startup;
import br.gov.frameworkdemoiselle.stereotype.BusinessController;
import br.gov.frameworkdemoiselle.template.DelegateCrud;
import br.gov.frameworkdemoiselle.transaction.Transactional;

@BusinessController
public class FuncionalidadeBC extends DelegateCrud<Funcionalidade, Long, FuncionalidadeDAO> {
	
	private static final long serialVersionUID = 1L;

	
	@Startup
	@Transactional
	public void load() {
		if (findAll().isEmpty()) {

			insert(new Funcionalidade("01","aditivo_edit.jsf", "Cadastrar Aditivo"));
			insert(new Funcionalidade("02","aditivo_list.jsf", "Listar Aditivo"));
			insert(new Funcionalidade("03","aditivo_relatorio.jsf", "RelatórioRelatório Aditivo"));
			insert(new Funcionalidade("04","agrupamentoItem_edit.jsf", "Cadastrar Agrupamento do Item"));
			insert(new Funcionalidade("05","agrupamentoItem_list.jsf", "Listar Agrupamento do Item"));
			insert(new Funcionalidade("06","boletimMedicao_edit.jsf", "Cadastrar Boletim"));
			insert(new Funcionalidade("07","boletimMedicao_list.jsf", "Listar Boletim"));
			insert(new Funcionalidade("08","boletimMedicao_relatorio.jsf", "Relatório Boletim"));
			insert(new Funcionalidade("09","configuracao_edit.jsf", "Cadastrar Configuracao"));
			insert(new Funcionalidade("10","configuracao_list.jsf", "Listar Configuraca"));
			insert(new Funcionalidade("11","despesa_edit.jsf", "Cadastrar Despesa"));
			insert(new Funcionalidade("12","despesa_list.jsf", "Listar Despesa"));
			insert(new Funcionalidade("13","estado_edit.jsf", "Cadastrar Estado"));
			insert(new Funcionalidade("14","estado_list.jsf", "Listar Estado "));
			insert(new Funcionalidade("15","formaExecucao_edit.jsf", "Cadastrar Forma de Execução"));
			insert(new Funcionalidade("16","formaExecucao_list.jsf", "Listar Forma de Execução"));
			insert(new Funcionalidade("17","funcionalidade_edit.jsf", "Cadastrar Funcionalidade"));
			insert(new Funcionalidade("18","funcionalidade_list.jsf", "Listar Funcionaldide"));
			insert(new Funcionalidade("19","licitacao_edit.jsf", "Cadastrar Licitação"));
			insert(new Funcionalidade("20","licitacao_list.jsf", "Listar Licitação"));
			insert(new Funcionalidade("21","licitacao_relatorio.jsf", "Relatório"));
			insert(new Funcionalidade("22","localItem_edit.jsf", "Cadastrar Local do Item"));
			insert(new Funcionalidade("23","localItem_list.jsf", "Listar Local do Item"));
			insert(new Funcionalidade("24","obra_edit.jsf", "Cadastrar Obra"));
			insert(new Funcionalidade("25","obra_list.jsf", "Listar Obra"));
			insert(new Funcionalidade("26","obra_relatorio.jsf", "Relatório"));
			insert(new Funcionalidade("27","pagamento_edit.jsf", "Cadastrar Pagamento"));
			insert(new Funcionalidade("28","pagamento_list.jsf", "Listar Pagamento"));
			insert(new Funcionalidade("29","pagamento_relatorio.jsf", "Relatório"));
			insert(new Funcionalidade("30","perfil_edit.jsf", "Cadastrar Perfil"));
			insert(new Funcionalidade("31","perfil_list.jsf", "Listar Perfil"));
			insert(new Funcionalidade("32","projetoAtividade_edit.jsf", "Cadastrar Projeto Atividade"));
			insert(new Funcionalidade("33","projetoAtividade_list.jsf", "Listar Projeto Atividade"));
			insert(new Funcionalidade("34","situacaoLicitacao_edit.jsf", "Cadastrar Situação da Licitação"));
			insert(new Funcionalidade("35","situacaoLicitacao_list.jsf", "Listar  Situação da Licitação"));
			insert(new Funcionalidade("36","situacaoObra_edit.jsf", "Cadastrar Situação da Obra"));
			insert(new Funcionalidade("37","situacaoObra_list.jsf", "Listar Situação da Obra"));
			insert(new Funcionalidade("38","tabelaPreco_edit.jsf", "Cadastrar Tabela de Preço"));
			insert(new Funcionalidade("39","tabelaPreco_list.jsf", "Listar Tabela de Preço"));
			insert(new Funcionalidade("40","tipoART_edit.jsf", "Cadastrar Tipo de ART"));
			insert(new Funcionalidade("41","tipoART_list.jsf", "Listar Tipo de ART"));
			insert(new Funcionalidade("42","tipoDocumentoPagamento_edit.jsf", "Cadastrar Tipo de Documento de Pagamento"));
			insert(new Funcionalidade("43","tipoDocumentoPagamento_list.jsf", "Listar Tipo de Documento de Pagamento"));
			insert(new Funcionalidade("44","tipoLicitacao_edit.jsf", "Cadastrar Tipo de Licitação"));
			insert(new Funcionalidade("45","tipoLicitacao_list.jsf", "Listar Tipo de Licitação"));
			insert(new Funcionalidade("46","tipoObra_edit.jsf", "Cadastrar Tipo de Obra"));
			insert(new Funcionalidade("47","tipoObra_list.jsf", "Listar Tipo de Obra"));
			insert(new Funcionalidade("48","tipoPrazo_edit.jsf", "Cadastrar Tipo de Prazo"));
			insert(new Funcionalidade("49","tipoPrazo_list.jsf", "Listar Tipo de Prazo"));
			insert(new Funcionalidade("50","unidadeMedida_edit.jsf", "Cadastrar Unidade de Medida"));
			insert(new Funcionalidade("51","unidadeMedida_list.jsf", "Listar Unidade de Medida"));
			insert(new Funcionalidade("52","unidadeOrcamentaria_edit.jsf", "Cadastrar Unidade Orçamentaria"));
			insert(new Funcionalidade("53","unidadeOrcamentaria_list.jsf", "Listar Unidade Orçamentaria"));
			insert(new Funcionalidade("54","usuario_edit.jsf", "Cadastrar Usuário"));
			insert(new Funcionalidade("55","usuario_list.jsf", "Listar Usuário"));
			insert(new Funcionalidade("56","obra_resumo.jsf", "Resumo das Obras"));
			insert(new Funcionalidade("57","obra_desvio.jsf", "Execução X Desvio de Execução"));

		}
	}
	
//	public List<Funcionalidade> consultarFuncionalidadesUsuario(Long idUsusario) {
//		return this.getDelegate().consultarFuncionalidadesUsuario(idUsusario);
//	}
}
